var mongoose = require('mongoose'); //引用mongoose模块
var db = require('./initDB.js');
// Schema 结构
var mongooseSchema = new mongoose.Schema({
    // "remote_addr"  : {
    //     type: String,
    // },
    // "time_local"  : {
    //     // type: Date,
    //     // default: Date.now
    //     type: String
    // },
    // "request" : {
    //     type: String
    // },
    // "status" : {
    //     type: String
    // },
    // "body_bytes_sent" : {
    //     type: String
    // },
    // "http_user_agent" : {
    //     type: String
    // },
    // "http_x_forwarded_for" : {
    //     type: String
    // },
    // "message" : {
    //     type: String
    // }
    "time" : {
        type: String
    },
    "file" : {
        type: String
    },
    "logLevel" : {
        type: String
    },
    "result" : {
        type: String
    },
});
//添加mongoose实例方法
// mongooseSchema.methods.findbyusername = function (username, callback) {
//     return this
//         .model('mongoose')
//         .find({
//             username: username
//         }, callback);
// }
//添加mongoose静态方法,静态方法在Model层就能使用
// mongooseSchema.statics.findByStatus = function (status, callback) {
//     return this
//         .model('mongoose')
//         .find({
//             status: status
//         }, callback);
// }
//model
var mongooseModel = db.model('mongoose', mongooseSchema,"test2");

//增加记录,基于entity操作
// var doc = {
//     username: 'emtity_demo_username',
//     title: 'emtity_demo_title',
//     content: 'emtity_demo_content'
// };
// var mongooseEntity = new mongooseModel(doc);
// mongooseEntity.save(function (error) {
//     if (error) {
//         console.log(error);
//     } else {
//         console.log("save OK!");
//     }
//     //关闭数据库连接
//     db.close;
// });

//增加记录,基于model操作
var doc = {
    "remote_addr" : "127.0.0.1",
    "time_local" : "13/Jan/2017:16:17:27 +0800",
    "request" : "GET /15688 HTTP/1.1 ",
    "status" : "404",
    "body_bytes_sent" : "152",
    "http_user_agent" : "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:50.0) Gecko/20100101",
    "http_x_forwarded_for" : "Firefox/50.0",
    "message" : "127.0.0.1 - - [13/Jan/2017:16:17:27 +0800] \"GET /15688 HTTP/1.1\" 404 152 \"-\" \"Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:50.0) Gecko/20100101 Firefox/50.0\""
};
// mongooseModel.create(doc, function (error) {
//     if (error) {
//         console.log(error);
//     } else {
//         console.log('save ok');
//     }
//     //关闭数据库连接
//     db.close();
// });

//修改记录 
// mongooseModel.update(conditions,update,options,callback);
// var conditions = {username:'model_demo_username'};
// var update = {$set:{age:27,title:'model_demo_title_update'}};
// var options = {upsert:true};
// mongooseModel.update(conditions,update,options,function(error){
//     if(error){
//         console.log(error);
//     }else{
//         console.log('update ok!');
//     }
//     //关闭数据库连接
//     db.close();
// });

//查询
//基于实例方法的查询
// var mongooseEntity = new mongooseModel({});
// mongooseEntity.findbyusername('model_demo_username',function(error,result){
//     if(error){
//         console.log(error);
//     }else{
//         console.log(result);
//     }
//     //关闭数据库连接
//     db.close();
// });

//基于静态方法的查询
// mongooseModel.findByStatus("404",function(error,result){
//     if(error){
//         console.log(error);
//     }else{
//         console.log(result);
//     }
//     //关闭数据库连接
//     db.close();
// });

//mongoose find
db.findByName = function(option,callback){
    // var status = option.type;
    // var query = option.query;
    //查询条件
    // var criteria = {status:query}; //查询条件
    // var fields = {remote_addr:1,time_local:1,http_bytes_agent:1}; //待返回的字段
    var criteria= {};
    var fields={};
    //限制条件
    var options = {limit:1,sort:{time:-1}};
    mongooseModel.find(criteria,fields,options,function(error,result){
        if(error){
            console.log(error);
        }else{
            // db.data = result;
            // var obj = {};
            // for(i in result){
            //     var ip = result[i]["remote_addr"];
            //     if(obj[ip]){
            //         obj[ip]++;
            //     }else{
            //         obj[ip] = 1;
            //     }
            // }
            // db.count = obj;
            // console.log(obj);
            // console.log("result="+result);
            callback(result)
        }
        //关闭数据库连接 
        // db.close();
    });
}

db.findRecentByName = function(option,callback){
    // var status = option.type;
    // var query = option.query;
    //查询条件
    // var criteria = {status:query}; //查询条件
    // var fields = {remote_addr:1,time_local:1,http_bytes_agent:1}; //待返回的字段
    var criteria= {};
    var fields={};
    //限制条件
    var options = {limit:7,sort:{time:-1}};
    mongooseModel.find(criteria,fields,options,function(error,result){
        if(error){
            console.log(error);
        }else{
            // db.data = result;
            // var obj = {};
            // for(i in result){
            //     var file = result[i]["file"];
            //     if(obj[file]){
            //         obj[file]++;
            //     }else{
            //         obj[file] = 1;
            //     }
            // }
            // db.count = obj;
            // console.log(obj);
            // console.log("result="+result);
            callback(result)
        }
        //关闭数据库连接 
        // db.close();
    });
}



//删除记录
// var conditions = {username:'emtity_demo_username'};
// mongooseModel.remove(conditions,function(error){
//     if(error){
//         console.log(error);
//     }else{
//         console.log('delete ok!');
//     }
//     //关闭数据库连接
//     db.close();
// })
   
module.exports = db;